package com.hyt.it.ogt.kq.service.bm.feign.kw;

import com.hyt.common.apiInfor.ApiResponse;
import com.hyt.it.ogt.kq.service.bm.feign.kw.model.ArrageStudent;
import com.hyt.loginfo.config.OAuth2FeignRequestConfig;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(value = "it-ogt-kz",contextId = "bm-it-ogt-kw" , fallback = KwClientHystrix.class, configuration = OAuth2FeignRequestConfig.class)
public interface KwClient {

	@RequestMapping(value = "/api/bm/exam/getExamInfo", method = RequestMethod.GET)
	Object getExamInfo(@RequestParam String examId) throws Exception;

	@RequestMapping(value = "/api/bm/exam/queryPage", method = RequestMethod.GET)
	ApiResponse queryPage(@RequestParam String enrollId) throws Exception;

	@RequestMapping(value = "/api/bm/exam/countExamByEnrollId", method = RequestMethod.GET)
	ApiResponse statExam(@RequestParam String enrollId) throws Exception;

	@RequestMapping(value = "/api/bm/exam/queryCandidateScore", method = RequestMethod.GET)
	ApiResponse queryGrade(@RequestParam String enrollId, @RequestParam String subjectId,
			@RequestParam String candidateId);

	@RequestMapping(value = "/api/bm/exam/orderCandidate", method = RequestMethod.POST)
	ApiResponse arrageStudent(@RequestBody ArrageStudent importCandidateFromBMVO) throws Exception;

	@RequestMapping(value = "/api/bm/exam/countFinishCandidateNumber", method = RequestMethod.GET)
	ApiResponse countFinishCandidateNumber(@RequestParam String beginTime, @RequestParam String endTime,
						   @RequestParam String officeId) throws Exception;

	@RequestMapping(value = "/api/bm/exam/findCandidateFinishExamCount", method = RequestMethod.GET)
	ApiResponse findCandidateFinishExamCount(@RequestParam String examStartTime, @RequestParam String examEndTime,
										   @RequestParam String officeId, @RequestParam String state) throws Exception;


}
